#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

int main(void)
{
    pid_t pid;

    printf("the calling process:\npid:%d ppid:%d gid:%d sid:%d\n", \
            getpid(), getppid(), getpgrp(), getsid(0));

    pid = fork();

    if (-1 == pid) {
        perror("fork()");
        return -1;
    }

    if (0 == pid){
        printf("the child process:\npid:%d ppid:%d gid:%d sid:%d\n", \
                getpid(), getppid(), getpgrp(), getsid(0));
        exit(0);
    }

    wait(NULL);
    return 0;
}

